package demo;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: fzykd
 * Date: 2023-04-08
 * Time: 15:24
 */

//单例模式的懒汉模式
class Singleton{
    //1.私有化构造器
    private Singleton(){}
    //2.初始化静态常量 但是不着急实例化对象 Ⅲ避免指令重排序
    private static volatile Singleton1 instance = null;
    //3.向外部提供一个唯一的一个获取实例化对象的方法
    public static Singleton1 getInstance(){
        //双重if判断 避免加速冲突
        if (instance == null){
            //存在线程安全问题 加锁
            synchronized (Singleton1.class){
                if (instance == null){
                    return new Singleton1();
                }
            }
        }
        return instance;
    }

}

public class Demo {
    public static void main(String[] args) {

    }
}
